System, Method, and Computer Program Product for Storage Management Dashboard

ABSTRACT

An example method for providing contextual information of a computer system includes determining a current state of an attribute of one or more storage resources. The one or more storage resources is coupled to a computer system, and the current state of the storage resource attribute is monitored by a performance monitoring tool. The example method includes determining a target state of the attribute and displaying a user interface including contextual information regarding the attribute. The example method further includes rendering in the user interface a graph representative of the current state and the target state of the attribute o. In some examples, the method further includes determining a forecast for the attribute and rendering the forecast in the user interface. In some examples, the user interface may include a visual indication of whether the attribute is in violation of a policy.

CROSS-REFERENCE

The present application claims the benefit of U.S. Provisional PatentApplication No. 61/919,487, filed Dec. 20, 2013, and entitled “System,method, and computer program product for monitoring infrastructure andassets,” the disclosure of which is incorporated by reference herein inits entirety.

TECHNICAL FIELD

The present disclosure relates generally to computing system monitoringand, more particularly, to providing visual information about the stateof computing systems.

BACKGROUND

Information storage systems may include a variety of different hardwareand software components. For instance, a storage system may include oneor more storage controllers, where each of the storage controllersprovides the low-level control for a plurality of physical storagedrives. The storage system may also include network connections andother items that are ancillary to the storage functionality of thesystem. Storage systems continue to become more and more complex, withstorage controllers hosting an increasing number of logical storagevolumes and storage controllers being clustered rather than simplystanding alone.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram of an example computing systemaccording to one embodiment.

FIG. 2 is a simplified block diagram of an example relationship amongapplications and a storage cluster according to one embodiment.

FIG. 3 is a simplified diagram of an example display of contextualinformation of a computing system according to one embodiment.

FIG. 4 is a simplified diagram of an example method of displayingcontextual information of a computing system according to oneembodiment.

FIG. 5 is a simplified diagram of an example method of displayingcontextual information of a computing system according to oneembodiment.

FIG. 6 is a simplified diagram of an example service-orientedarchitecture (SOA) according to one embodiment.

DETAILED DESCRIPTION

In the following description, specific details are set forth describingsome embodiments consistent with the present disclosure. It will beapparent, however, to one skilled in the art that some embodiments maybe practiced without some or all of these specific details. The specificembodiments disclosed herein are meant to be illustrative but notlimiting. One skilled in the art may realize other elements that,although not specifically described here, are within the scope and thespirit of this disclosure. In addition, to avoid unnecessary repetition,one or more features shown and described in association with oneembodiment may be incorporated into other embodiments unlessspecifically described otherwise or if the one or more features wouldmake an embodiment non-functional.

I. Overview

Various embodiments of the present disclosure provide providingcontextual information of a computer system that is both efficient andeasy to understand for a human user. One embodiment includes a userinterface that provides graphing of performance metric data for one ormore storage resources. For example, a storage resource may includemultiple storage drives, virtual volumes, network connections, switches,and virtual machines, among other assets. A human user has a convenientvisual comparison tool in the user interface that enables the user tocompare information about one or more storage resources.

Silos of information may exist in different repositories in a storageenvironment. For example, some information may be stored in databases ormanagement presentations. It may be desirable for a dashboard to providevisibility into a storage environment with sufficient context to enablethe user to make informed decisions, ask relevant questions, and trackthe progress of one or more storage resources. Rather than just have aview of the raw or available storage capacity, the user may be able todetermine (e.g., from a financial view point) how the storage usage isprogressing in accordance with a plan (e.g., the target state).

To display contextual storage information and to perform other tasks, amonitoring system accesses and displays information associated withstorage systems and the components, assets, and elements in thosestorage systems. A storage resource may refer to a component that storesdata or assists in the storage of data. An attribute of a storageresource may refer to an object closely associated with or belonging tothe storage resource.

In an example, the storage resource is a storage server, and the storageattribute is the response time of the storage server. The current stateof an attribute of a storage resource may be determined. The currentstate may be monitored by a system monitoring tool. A value of theattribute may range among different values and the attribute may have anacceptable range. For example, an acceptable range may be up to 5milliseconds (0-5 ms). A user interface including contextual informationregarding the storage resource attribute may be displayed. A graph maybe rendered in the user interface, where the graph is representative ofthe current state and the acceptable range for the storage resourceattribute. The graph may also include a use forecast, which may refer toa projection of a value of the storage resource attribute. In anexample, linear regression may be used to determine the user forecast.The graph enables the user to visualize the attributes of storageresources and be more knowledgeable of the storage infrastructure andenvironment.

In another example, the storage resource is a storage server, and thestorage attribute is storage capacity. The current state and targetstate of an attribute of a storage resource may be determined. Thecurrent state may be monitored by a system monitoring tool, and a usermay provide the target state of the storage resource attribute. A userinterface including contextual information regarding the storageresource attribute may be displayed. A graph may be rendered in the userinterface, where the graph is representative of the current state andthe target state of the storage resource attribute. The graph may be,for example, a Bullet graph including the current state, the targetstate, and the use forecast of the storage resource attribute. TheBullet graph may be representative of the current storage capacity,target storage capacity, and the use forecast of the storage environmentmonitored by the performance monitoring tool.

Additionally, all categories displayed may be hyperlinked such that auser selecting the hyperlink may be provided with a report regarding thecurrent state, target state, and/or use forecast of the storage resourceattribute. The user interface may also display visual indications tohighlight particular categories that violate a user-configured policy orthat may violate a user-configured policy if not dealt with soon by theuser.

II. Example System Architectures

The example of FIG. 1 below is directed to a network storage system, andthe scope of embodiments is applicable to a wide variety of computersystems other than storage systems. Accordingly, the concepts describedherein for monitoring and providing contextual information may beapplied to computing systems generally.

FIG. 1 is an illustration of a network storage system 190 adaptedaccording to one embodiment. Various embodiments of the presentdisclosure may be implemented by the network storage system 190, asdescribed in more detail below.

The system 190 includes server system 110 connected to client system 160via a network 165. The server system 110 accesses storage subsystems 100that are connected to the server system 110 via a network 167. Thestorage subsystems 100 are included in a cluster 135. Each storagesystem 100 in the cluster 135 includes a set of storage devices 130 forstoring client data, the storage devices 130 of the cluster 135providing the shared storage of the storage system 100. Each storagesubsystem 100 also includes a storage controller 101. Each storagecontroller 101 exercises low-level control over physical storage devices130 to provide virtualized storage to server system 110 and client 160.Examples of storage hardware that can be used as physical storagedevices 130 includes, e.g., hard disk drives and solid state drives,though the scope of embodiments is not limited to any particular storagehardware.

Each storage device 130 may store data from logical storage entitiessuch as one or more storage volumes, where each volume has a file systemimplemented on the volume. A file system implemented on the logicalstorage entity may provide multiple directories in a single volume, eachdirectory containing various filenames each of which may be mapped to amultitude of storage devices 130.

Client system 160 may run one or more applications (e.g., wordprocessing or database programs, typified by application 161) that usethe storage system. Client system 160 includes a computer system thatinteracts with server system 110 for submitting read/write accessrequests and for receiving or transmitting data from or to the serversystem 110 over the network 165. In a virtual server environment,application 161 on client system 160 may interact over the network 165with one or more virtual machines (VMs) 115 executing on server system110.

Various embodiments may include a system monitoring tool that receivesdata from the system assets, monitors performance of the system assets,and provides user access to analyzed system data. System 190 includes asystem monitoring tool that is implemented as an application. Forinstance, a system monitoring tool can be implemented as application 161at client 160. Additionally or alternatively, the system monitoring toolmay be implemented as one of applications 112, 117, 119. For thepurposes of this example, application 117 is described as the systemmonitoring tool. The system monitoring tool 117 receives system data bycommunicating with storage operating systems at each storage controller101. For instance, system monitoring tool 117 may communicate via one ormore application programming interfaces (APIs) to receive systeminformation, such as hardware names, volume names, usage data, storagecapacity, read and write operations per second, and the like. Varioustypes of system information are described in more detail below. Inshort, the system information of this example includes any type ofinformation that allows the monitoring tool 117 to construct acomprehensive description of the architecture, state, and performance ofsystem 190.

System 190 also includes a dashboard manager that provides contextualinformation of the system to a human user in an easily understandableformat. Dashboard manager 119 may be implemented as an application. Forthe purposes of this example, application 119 is described as thedashboard manager 119. The dashboard manager 119 receives system data byretrieving the data collected by the system monitoring tool 117. In anexample, system monitoring tool 117 collects the data and stores thedata in a data warehouse. Dashboard manager 119 may communicate with thedata warehouse via one or more application programming interfaces (APIs)to receive system information, such as hardware names, volume names,usage data, storage capacity, read and write operations per second, andthe like. Although system monitoring tool 117 and dashboard manager 119are illustrated as being separate applications, in other embodiments,system monitoring tool 117 and dashboard manager 119 may be combinedinto one application.

Server system 110 includes a computer system that executes applicationsand interacts with the client system 160 for receiving read/write accessrequests and receiving or transmitting data from or to the client system160 over the network 165. Server system 110 in this example is connectedto the client system 160 over a network 165 such as a local area network(LAN), an Ethernet subnet, a peripheral component interconnect (PCI) orPCI express (PCIe) subnet, a switched PCIe subnet, a wide area network(WAN), a metropolitan area network (MAN), the Internet, or the like.

The server system 110 may include any appropriate computer hardware andsoftware. In one example, server system 110 includes a general-purposecomputer configured to execute any of a variety of operating systems,including the Unix™, Linux™, and Microsoft Windows™ operating systems.

Server system 110 includes hypervisor 113, which creates and manages oneor more Virtual Machines (VMs)—in this case, VM 115. The present exampleshows only a single VM 115, though in other embodiments, the server 110includes multiple VMs (not shown), each VM being used by and connectedwith a client 160 through computer network 165. Thus, systems with morethan one client 160 may include more than one VM 115, each client beingsupported by at least one VM. VM 115 includes an encapsulation orinstance of an operating system and applications 112, 117, and 119executing on top of that instance. Briefly, application 112 providesread/write access to the clients 160 to data stored in cluster 135.Application 117 is a system monitoring tool described in more detailbelow. In some embodiments, different types of VM hypervisors 113 may beused (e.g., VMware™ ESX, Microsoft™ Hyper-V, etc.). Application 119provides contextual information of one or more storage resources for auser.

Each storage system 100 is configured to allow server system 110 toaccess its data, for example, to read or write data to the storagesystem. The server system 110 executes application 112 that “connects”to storage systems 100 over computer network 167 to send an accessrequest (read or write request) to storage system 100 for accessingparticular data stored on the storage system 100. The VM application 112executing on the server 110 services the connected client 160 byreceiving the client access requests and submitting the access requeststo the storage system 100 for execution.

The scope of embodiments is not limited to the particular architectureof system 190. For instance, other systems may include additionalservers, each server being similar to server system 110. While theexample of FIG. 1 shows only one client 160, it is understood that anyappropriate number of clients may be supported by the system 190.Moreover, while cluster 135 shows two storage subsystems 100 a and 100b, it is understood that any appropriate number of controllers andstorage drive arrays may be used with various embodiments. For instance,some embodiments may include only a single storage subsystem, whereasother embodiments may include three or more storage subsystems. In otherwords, the scope of embodiments is not limited to a single storagecluster.

System monitoring tool 117 monitors the assets of system 190, where theassets include any hardware or software component that is included inthe architecture of system 190 or affects the performance of the system190. Examples of assets include the underlying storage drives (e.g.,HDDs and SSDs), virtual volumes, storage controllers, storagesubsystems, aggregates of storage subsystems, network connections,virtual machines, hypervisors, applications, and the like.

FIG. 2 is a block diagram illustration of an exemplary conceptual layoutaccording to one embodiment. Application 117 is a system monitoringapplication that provides for data collection, analysis, and display forperformance aspects and contextual information of system 190. Asexplained above with respect to FIG. 1, tool 117 may be run in a VM in astorage server; additionally or alternatively, a performance managementtool may be embodied as an application run on a client (not shown) or onany appropriate computer in communication with cluster 135.

A human user interacts with system monitoring tool 117 via UI 118. UI118 may include a command line interface, a graphical user interface(GUI), or other appropriate interface. The human user may rely on UI 118for troubleshooting and viewing performance data. For instance, thehuman user may input information identifying requested contextualinformation, performance statistics, identify new assets, and changesettings using UI 118. FIG. 3 describes an example screen that may bedisplayed by UI 118.

Storage operating systems (OSs) 136 run on storage controllers 100 (FIG.1). The scope of embodiments may include any appropriate OS thatprovides low-level control to implement virtual storage on storagedrives. Storage OS instances 136 run on one or more processors atstorage controllers 100. Also, communication between storage OSs 136 andsystem monitoring tool 117 go through communication links, such asnetwork 167 (FIG. 1).

System monitoring tool 117 automatically imports information on thevarious infrastructure assets in system 190, providing accurate andreal-time visibility of servers, virtual servers, Host Bus Adaptors(HBAs), switches, storage arrays, and the like. In one example, systemmonitoring tool 117 discovers the assets by polling each of the assetsthat it is aware of. Each of the deployed assets provides one or moreAPIs that can be used to request information therefrom. Systemmonitoring tool 117 is programmed to use those APIs to automaticallyimport the information. Imported information can include, but is notlimited to, storage capacity, data usage, device type, latency,operations per second, faults, and the like. The scope of embodiments isnot limited to any particular asset information, and any appropriateasset information may be imported in various embodiments.

III. Example Dashboard

FIG. 3 is an example display 3000 of system contextual informationaccording to one embodiment. FIG. 3 may be presented by UI 118 (FIG. 1)on a display screen of a computing device to a human user. Theunderlying data analysis is performed by system monitoring tool 117 anddashboard manager 119 (FIG. 1). FIG. 3 shows a graphical display inwhich contextual information for multiple, different assets isdisplayed, thereby providing the human user with intuitive, digestibleinformation. Dashboard manager 119 provides contextual information ofthe storage environment to a user via dashboard 3002.

Display 3000 illustrates a storage manager dashboard 3002, which in thisexample is provided in a single screen of information providingcontextual information for the management of storage infrastructure andservices. Silos of information may exist in different repositories inthe storage environment. For example, some information may be stored indatabases or management presentations. Dashboard 3002 providesvisibility into a storage environment with sufficient context to enablethe user to make informed decisions, ask relevant questions, and trackthe progress of one or more storage resources. Rather than just have aview of the raw or available storage capacity, the user may be able todetermine (e.g., from a financial view point) how the storage usage isprogressing in accordance with a plan (e.g., the target state).

Dashboard 3002 highlights issues and may allow an administrator toeasily compare a current state of an attribute of one or more storageresources to a target state of the attribute of the one or more storageresources. A storage resource may refer to a component that stores dataor assists in the storage of data. In an example, a storage resource maybe a networked storage device (e.g., storage server), storagecontroller, network controller, caching unit, disk pool, storage drive(e.g., solid-state drive (SSD) or a disk), storage cluster, rack server,redundant array of independent disks (RAID), physical or virtual storagevolume, or storage aggregate. An attribute of a storage resource mayrefer to an object closely associated with or belonging to the storageresource. Dashboard manager 119 may determine a current state of theattribute of one or more storage resources. The current state of thestorage resource attribute may be monitored by system monitoring tool117.

In an example, the storage resources are storage servers, and anattribute of the storage server is its storage capacity. In such anexample, dashboard manager 119 may determine the current storagecapacity of the storage servers (e.g., used and allocated memory).

In another example, the storage resources are storage servers, and anattribute of a storage server is its acceptable range of response times.In such an example, dashboard manager 119 may determine the acceptablerange of response times (e.g., for different storage tiers). In anotherexample, the storage resources are storage servers, and an attribute ofa storage server is its response time. In such an example, dashboardmanager 119 may determine the current response time of the storageservers (e.g., for different storage consumers). In another example, thestorage resources are storage servers, and an attribute of a storageserver is its input/output per seconds (IOPS). In such an example,dashboard manager 119 may determine the current IOPS of the storageservers.

Dashboard manager 119 may also break down the storage by tiers. Forexample, an attribute of the storage server may be a tier of the storageserver (e.g., tier 1 storage, tier 2 storage, etc.). In another example,an attribute of the storage server is a location of a data center thatincludes the storage server.

In an example, the storage resources are storage servers, and anattribute of the storage server is storage traffic. In such an example,dashboard manager 119 may determine the current storage traffic of astorage server within a time frame (e.g., daily storage traffic, trafficwithin the last seven days, or traffic within the last month, etc.).Dashboard manager 119 may, for the storage servers, determine the dailymean for the storage traffic within the particular time frames andrender graphs representative of the daily means. Storage traffic may bein accordance with the number of requests received from one or moreclients, IOPS, number of blocks accessed, number of bytes retrieved,etc.

In another example, the storage resources are fiber channel (FC) switchports, and an attribute of the FC switch port is a connection. In suchan example, dashboard manager 119 may determine the current number of FCswitch port connections (e.g., number of FC switch port connections andthe total number of FC switch ports). In another example, the storageresource is FC bandwidth, and an attribute of the FC bandwidth isutilization. In such an example, dashboard manager 119 may determine thecurrent FC bandwidth utilization.

The user may also be referred to as an administrator. An administratormay be tasked with overseeing the storage infrastructure. Theadministrator may set a target state of an attribute of the one or morestorage resources in a variety of ways. In an example, the administratorhas a best guess capacity projection (e.g., I want to buy X storagecapacity) and sets this as the target state of the attribute. In anotherexample, the administrator determines a target capacity for each storagetier and the sum of each of the target capacities determines the finaltarget storage capacity. In another example, the total storage capacityof the environment may be determined and the target state of theattribute may depend on the total storage capacity of the environment.

Dashboard 3002 may also allow the user to easily compare current stateof an attribute of one or more storage resources to a use forecast ofthe attribute of the one or more storage resources. For example,dashboard 3002 allows the rapid visualization of current and futureissues in the storage infrastructure. Storage information is structuredin dashboard 3002 in a highly visible format such that it is easy forthe human user to understand the context of storage resources. Dashboard3002 is displayed on a single window viewable in, for example, a Webbrowser via, for example, a laptop, desktop, or mobile device. Theinformation displayed in dashboard 3002 is collected from systemmonitoring tool 117 and may be stored in a data warehouse. Additionally,the collected data may be augmented with information that isconfigurable by the user to give context to the storage resources andallow comparisons between storage resources. In an example, the humanuser provides the system with information via UI 118.

Dashboard 3002 displays a variety of discrete panes providing contextualstorage management. For example, an administrator may look intodifferent storage attributes and compare them to expectations. In theexample illustrated in FIG. 3, dashboard 3002 includes panes 3004, 3006,3008, 3010, 3012, 3014, and 3016. Each pane contains contextualinformation on certain aspects of the storage environment and provides acondensed format to enable the administrator to find storage informationquickly. The panes displayed in dashboard 3002 may provide theadministrator with a story regarding the availability and usage ofstorage resources in the storage environment. Accordingly, theadministrator may feel in control of and knowledgeable about the storageenvironment. Although dashboard 3002 is illustrated as including sevenpanes, this is not intended to be limiting and other embodiments mayinclude more or fewer than seven panes. The dashboard may include one ormore panes.

A. Summary

Pane 3004 is labeled “Summary” 3020 and is displayed in the upperleft-hand corner of dashboard 3002. Pane 3004 displays a summary,detailing storage capacity 3022, fiber channel (FC) switch ports 3024,and FC bandwidth 3026, and how they trend over time for the last twelvemonths.

1. Storage Capacity

Dashboard manager 119 may display a user interface including contextualinformation regarding an attribute of one or more storage resources. Forexample, dashboard manager 119 may render in the user interface a graphrepresentative of the current state, the target state, and/or useforecast of the attribute of the one or more storage resources. In anexample, dashboard manager 119 renders a Bullet graph including thecurrent state, the target state, and the use forecast of the storageresource attribute, as will be explained further below.

Storage capacity in terms of use and allocation are plotted against time(last 12 months) on a graph 3028. In dashboard 3002, Bullet graphs areused in a storage context. For example, a Bullet graph 3030 in pane 3004illustrates the overall capacity of the storage environment and enablesa user to discern storage capacity trends in relation to a currentstate, a target state, and a use forecast of storage capacity. Storagecapacity 3022 is visually depicted in relation to used and allocatedstorage capacity.

Based on the data collected by system monitoring tool 117, dashboardmanager 119 may determine a current state of an attribute of one or morestorage resources in network storage system 190. The current state ofthe storage resource attribute may be monitored by system monitoringtool 117. In an example, system monitoring tool 117 stores the datacollected regarding the storage capacity in a data warehouse, anddashboard manager 119 retrieves that data from the data warehouse,processes the data, and displays the data in dashboard 3002. Theattribute may be storage capacity 3022. In the example illustrated inFIG. 3 and in regard to the current state of storage capacity, dashboardmanager 119 determines that 13 petabytes (PBs) are currently being used.The current state of storage capacity may indicate the actual storagecapacity in network storage system 190. Dashboard 3002 shows the currentstate of storage capacity, which is illustrated numerically by the “13PB” displayed to the left of Bullet graph 3030 and is also illustratedin a left portion 3032 of Bullet graph 3030.

Dashboard manager 119 may determine the use forecast for an attribute ofone or more storage resources in network storage system 190 by, forexample, running an algorithm. In an example, dashboard manager 119predicts the storage capacity by running the algorithm on data collectedon the storage capacity in network storage system 190. In such anexample, the algorithm may include a linear regression algorithm. Forexample, the linear regression algorithm may model the collected data asa best fit line (e.g., to minimize a square of the errors between thecollected data and the data as modeled by the best fit line) over timeand extract a forecast in the future by projecting along the best fitline. The increase in storage capacity may be used in the linearregression algorithm to determine the storage capacity in the future andalso a use forecast in terms of how much storage capacity will beconsumed throughout the year. The algorithm may be applied to each ofthe storage resource attributes to determine the user forecast for thestorage resource attribute.

The administrator may easily be able to determine where the company isrelative to a target state of the storage resource attribute. In theexample illustrated in FIG. 3 and in regard to the use forecast forstorage capacity 3022, dashboard manager 119 determines that the useforecast is 20 PBs. The use forecast for storage capacity 3022 isillustrated numerically by the “20 PB” displayed to the right of Bulletgraph 3030 and is also illustrated in a right portion 3036 of Bulletgraph 3030.

Dashboard manager 119 may provide a context by allowing entry of atarget state of storage resource attribute in network storage system190. Dashboard manager 119 may determine the target state of theattribute of the one or more storage resources. In an example, a userprovides dashboard manager 119 with information regarding the targetstate of an attribute for one or more storage resources in networkstorage system 190. The user may provide dashboard manager 119 with thetarget state via UI 118. In the example illustrated in FIG. 3 and inregard to the target state of storage capacity 3022, the user mayprovide 17.5 PBs as the target storage capacity to use. Dashboardmanager 119 may receive the target state (e.g., target storage capacity)input by the user and depict the target state by a mark 3034 at aposition that represents the target state on Bullet graph 3030. Mark3034 is placed between 15 PBs and 20 PBs and is at a positionrepresenting 17.5 PBs in Bullet graph 3030. In such an example, theadministrator may have allocated funds for 17.5 PBs of storage capacity.

Regarding the example contextual storage information regarding storagecapacity displayed in pane 3004, the storage resource attribute isstorage capacity, and Bullet graph 3030 is representative of the currentstorage capacity, target storage capacity, and the use forecast of astorage environment monitored by system monitoring tool 117. The storageenvironment includes the one or more storage resources. The human usermay visually discern the current state, target state, and use forecastof storage capacity. The user may track storage usage, and compare andcontrast the current state, system's prediction(s) (e.g., dashboardmanager 119's prediction(s)), and/or target state of storage capacity.For example, the user may configure the system to show the target stateand use forecast of a storage resource attribute for the end of thefinancial year so that the user can track storage capacity growthcompared to the use forecast. Accordingly, users may compare the data totheir understanding of the storage environment and be able to adjusttheir trajectories and budget allocation.

For example, in FIG. 3, the actual storage capacity (13 PBs) does notreach the target storage capacity (17.5 PBs). If dashboard 3002illustrates the storage capacity state in December at the end of theyear, the administrator may determine that she over budgeted. If,however, dashboard 3002 illustrates the storage capacity state inFebruary at the beginning of the year, the administrator may beconcerned because the actual storage capacity may be quickly approachingthe target storage capacity and the administrator may have underbudgeted. In another example, the administrator may view Bullet graph3030 and identify that the target state (17.5 PBs) is less than the useforecast (20 PBs). In such an example, the administrator may concludethat she under-budgeted on storage capacity and may need to purchasemore storage.

2. Networking Resources

a. FC Switch Port Connections

In another example, the storage resource is an FC switch port, and theattribute is an FC switch port connection. In FIG. 3, FC switch portconnections are plotted against time (last 12 months) on a graph 3038.Additionally, a Bullet graph 3040 illustrates the FC switch portconnections in the storage environment and enables a user to discern FCswitch port connection trends in relation to a current state, a targetstate, and a use forecast of FC switch ports. FC switch ports 3024 arevisually depicted in relation to connections and total quantity of FCswitch ports.

Based on the data collected by system monitoring tool 117, dashboardmanager 119 may determine a current state of FC switch port connectionsin network storage system 190. In the example illustrated in FIG. 3 andin regard to the current state of FC switch port connections, dashboardmanager 119 determines that 65,000 FC switch ports are currentlyconnected in network storage system 190. The current state of FC switchport connections may indicate the actual quantity of FC switch portscurrently connected in network storage system 190. Dashboard 3002 showsthe current state of FC switch port connections, which is illustratednumerically by the “65K” displayed to the left of Bullet graph 3040 andis also illustrated in a left portion 3042 of Bullet graph 3040.

Dashboard manager 119 may determine the use forecast for FC switch portconnections as described above for storage capacity. In the exampleillustrated in FIG. 3 and in regard to the use forecast for FC switchports 3024, dashboard manager 119 determines that the use forecast of FCswitch ports is 115,000 FC switch port connections. The use forecast forFC switch ports 3024 is illustrated numerically by the “115K” displayedto the right of Bullet graph 3040 and is also illustrated in a rightportion 3046 of Bullet graph 3040.

Dashboard manager 119 may determine the target state of FC switch ports3024 as described above for storage capacity. In the example illustratedin FIG. 3 and in regard to the target state of FC switch ports 3024, theuser may provide 130,000 as the target FC switch port connections touse. Dashboard manager 119 may receive the target state (e.g., target FCswitch port connections) input by the user and depict the target stateby a mark 3044 at a position that represents the target state on Bulletgraph 3040. Mark 3044 is placed between 125K and 150K and is at aposition representing 130K in Bullet graph 3040. In such an example, theadministrator may have allocated funds for 130,000 FC switch portconnections.

Regarding the example contextual storage information regarding FC switchports displayed in pane 3004, the storage resource attribute is FCswitch port connections, and Bullet graph 3040 is representative ofcurrent FC switch port connections, target FC switch port connections,and the use forecast of FC switch port connections in a storageenvironment monitored by system monitoring tool 117. The human user mayvisually discern the current state, target state, and use forecast of FCswitch ports. The user may track the quantity of FC switch portconnections, and compare and contrast the current state, system'sprediction(s) (e.g., dashboard manager 119's prediction(s)), and/ortarget state of FC switch port connections. For example, theadministrator may view Bullet graph 3040 and identify that the useforecast (115,000 FC switch port connections) is less than the targetstate (130,000 FC switch port connections). Thus, the administrator mayconclude that it is unnecessary to purchase more FC switch ports.

b. FC Bandwidth

In another example, the storage resource is FC bandwidth, and theattribute is FC bandwidth utilization. In FIG. 3, FC bandwidth isplotted against time (last 12 months) on a graph 3058. Additionally, aBullet graph 3050 illustrates the FC bandwidth utilization of thestorage environment and enables a user to discern FC bandwidthutilization trends in relation to a current state and a use forecast ofFC bandwidth. FC bandwidth 3026 is visually depicted in relation toutilization and capacity.

In dashboard 3002, the FC bandwidth utilization data set does notinclude a target state but does include acceptable ranges. In anexample, the human user configures the acceptable ranges of the FCbandwidth via, for example, UI 118. In another example, the acceptableranges of the FC bandwidth are already set and the user is unable tochange the acceptable ranges. Dashboard manager 119 may determine anacceptable range for the attribute of the one or more storage resources(e.g., FC bandwidth) and display a user interface including contextualinformation regarding the attribute of the one or more storageresources. Dashboard manager 119 may render in the user interface agraph representative of the current state and the acceptable range forthe attribute of the one or more storage resources.

Bullet graph 3050 displays the actual utilization compared against theseacceptable ranges. In dashboard 3002, the acceptable ranges includethree different levels of acceptable ranges—low utilization (0-50percent utilization), mid utilization (51-75 percent utilization), andhigh utilization (76-100 percent utilization). Other embodiments mayinclude fewer or more than three utilization levels and may differ intheir utilization percentages for each level.

Based on the data collected by system monitoring tool 117, dashboardmanager 119 may determine a current state of FC bandwidth utilization innetwork storage system 190. In the example illustrated in FIG. 3 and inregard to the current state of FC bandwidth utilization, dashboardmanager 119 determines that 60 percent of FC bandwidth is currentlybeing used. The current state of FC bandwidth utilization may indicatethe actual use of FC bandwidth currently being consumed in networkstorage system 190. Dashboard 3002 shows the current state of FCbandwidth utilization, which is illustrated numerically by the “60%”displayed to the left of Bullet graph 3050 and is also illustrated in aportion 3052 of Bullet graph 3050.

Dashboard manager 119 may determine the use forecast for FC bandwidthutilization as described above for storage capacity. In the exampleillustrated in FIG. 3 and in regard to the use forecast for FC bandwidth3026, dashboard manager 119 determines that the use forecast is 312terabytes (TBs) per second. The use forecast for FC bandwidth 3026 isillustrated numerically by the “312 TB/s” displayed to the right ofBullet graph 3050.

Regarding the example contextual storage information regarding FCbandwidth displayed in pane 3004, the storage resource attribute is FCbandwidth utilization, and Bullet graph 3050 is representative ofcurrent FC bandwidth utilization, target FC bandwidth utilization, andthe use forecast of FC bandwidth utilization in a storage environmentmonitored by system monitoring tool 117. The human user may visuallydiscern the current state and use forecast of FC bandwidth utilization.The user may track FC bandwidth utilization, and compare and contrastthe current state and system's prediction(s) (e.g., dashboard manager119's prediction(s)) of FC bandwidth utilization. For example, the usermay configure the system to show the current state and use forecast ofFC bandwidth. If the current state of FC bandwidth utilization is 40percent, the administrator may decide to not allocate any more funds toFC bandwidth. If, however, the current state of FC bandwidth utilizationis 75 percent, the administrator may decide to allocate more funds to FCbandwidth.

3. Provide Hyperlinks Corresponding to the Storage Resource Attribute

Dashboard manager 119 may provide a hyperlink that corresponds to astorage resource attribute. In response to a user selecting thehyperlink, dashboard manager 119 provides a report regarding the currentstate, target state, and/or use forecast of the storage resourceattribute. The report may have information on, for example, the currentstate, target state, and/or use forecast of the storage resourceattribute over a threshold period of time.

4. Visual Indications

A user may provide a policy in relation to one or more storageresources. In an example, dashboard manager 119 determines whether aviolation in a policy (e.g., user-configured policy) for a storageresource attribute has occurred. The user may enter the policy via UI118. In response to determining that a violation in a policy (e.g.,user-configured policy) for a storage resource attribute has occurred,dashboard manager 119 may display in dashboard 3002 a visual indicationthat the violation has occurred. The visual indication is used to alertthe human user of the violation. A visual indication may be displayednear the particular category that has violated a policy in dashboard3002 to enable rapid visualizations of issues in the storage environmentand to highlight where in dashboard 3002 the administrator should lookfirst. An administrator may use dashboard 3002 to identify issuesrelative to the data.

Additionally, the administrator may select a visual indication toreceive more information about what is causing the violation. In anexample, the visual indication may be a hyperlink selectable by theadministrator to obtain more information about the violation. Thehyperlink corresponds to the storage resource attribute that hasviolated a policy.

The administrator may select the visual indication by, for example,pointing a mouse and clicking on the visual indication or touching thevisual indication with the administrator's finger (for touch-sensitivescreens). In another example, a graph or text that is displayed indashboard 3002 and that is associated with the violation may be ahyperlink selectable by the administrator to obtain more informationabout the violation. The administrator may select the graph or text, forexample, by pointing a mouse and clicking on the graph or text or bytouching the graph or text with the administrator's finger (fortouch-sensitive screens).

The violation may be a global violation or a local violation (potentialviolation). A global violation may refer to an actual violation of apolicy (e.g., user-configured policy). In an example, a visualindication of a global violation may be depicted with a solid circle. Indashboard 3002, a visual indication 3054 is displayed adjacent tostorage capacity 3022 to indicate that a global violation in auser-configured policy for storage capacity 3022 has occurred. Visualindication 3054 is a solid circle. Accordingly, the human user isdirected to visual indication 3054 and may easily determine that aglobal violation of a user-configured policy for storage capacity 3022has occurred. Visual indication 3054 may be displayed if, for example, agrowth rate threshold or a targeted consumption has been exceeded. Forstorage capacity 3022, the use forecast (20 PB) exceeds the target state(17.5 PB), indicating that dashboard manager 119 predicts the actualstorage usage will exceed what the administrator targeted to use. Insuch an example, a visual indication may be displayed near storagecapacity 3022 to alert the administrator of this.

A local violation may refer to a potential violation of a policy (e.g.,user-configured policy) and that may actually violate the policy if notdealt with soon. In an embodiment, dashboard manager 119 determineswhether a potential violation in a user-configured policy for a storageresource attribute exceeds a threshold. In an example, tier 3 storagemay abide by user-configured policies but a data center including tier 3stage may be almost full and its free storage below N megabytes. In suchan example, dashboard manager 119 may determine that a potentialviolation in a user-configured policy for the storage resource attributeexceeds a threshold. in response to determining that the potentialviolation in the user-configured policy for the storage resourceattribute exceeds the threshold, dashboard manger 119 displays in theuser interface a visual indication that the potential violation in theuser-configured policy for the storage resource attribute exceeds thethreshold.

A visual indication indicating a local violation/potential violationhighlights issues that are not of prime importance but should bedisplayed to make the administrator aware of potential issues. In anexample, the problem does not appear in the summarized information andresides in a lower level of infrastructure. In an example, a visualindication of the potential violation may be depicted with a hollowcircle. In dashboard 3002, a visual indication 3071 is displayedadjacent to tier 3 storage, which is also discussed in the next section,and indicates that there is a potential for a violation in auser-configured policy for tier 3 storage, such as exceeding a capacitythreshold. Visual indication 3071 is a hollow circle. Accordingly, thehuman user is directed to visual indication 3071 and may easilydetermine that a potential violation of a user-configured policy fortier 3 storage exceeds the threshold. Visual indication 3071 may bedisplayed if, for example, tier 3 storage does not actually violate apolicy but a particular data center is almost full and it would beadvantageous to alert the user that the particular data center is almostfull.

B. Storage Tier Capacity

In another example, the storage resource is a storage server, and afirst attribute is a storage tier and a second attribute is capacity.Pane 3006 is labeled “Storage Tiers Capacity” 3060 and is displayed inthe middle left portion of dashboard 3002. Different types of storagemay be broken down into different tiers. Pane 3006 displays a pluralityof storage tiers and their capacity. In dashboard 3002, pane 3006includes five storage tiers—tier 1, tier 2, tier 3, tier 4, and tier 5.Although dashboard 3002 is illustrated as including five storage tiers,this is not intended to be limiting and other embodiments may includeand/or display more or fewer than five storage tiers. Dashboard 3002 mayinclude one or more storage tiers.

Pane 3006 may be configurable to display as many tiers as requested bythe human user. Different storage tiers may have different prices and/orcapabilities. For example, tier 1 storage may be very expensive comparedto tier 5 storage, and the administrator may budget accordingly. Theadministrator may look into different investments to determine whetherher target storage goals are being met.

For each of the displayed storage tiers, pane 3006 displays the capacityusage for the last twelve months and a Bullet graph that illustrates theoverall capacity of the particular storage tier. Each Bullet graph has avalue representing the actual usage to its left, the use forecast, and atarget state of the storage tier's capacity. Additionally, for eachstorage tier, storage capacity is plotted against time (last 12 months).Accordingly, the administrator is able to discern storage capacitytrends in relation to a current state, a target state, and a useforecast for a particular storage tier. Thus, the administrator may beable to compare different storage tiers relative to each other and theirusage patterns.

Based on the data collected by system monitoring tool 117, dashboardmanger 119 may determine a current state of a storage tier in networkstorage system 190. In the example illustrated in FIG. 3 and in regardto the current storage capacity of tier 1 storage, dashboard manager 119determines that 4,200 TBs of tier 1 storage are currently being used.The current state of tier 1 storage capacity may indicate the actualstorage capacity of tier 1 storage in network storage system 190.Dashboard 3002 shows the current state of tier 1 storage capacity, whichis illustrated numerically by the “4,200 TB” displayed to the left ofBullet graph 3064 and is also illustrated in a left portion 3066 ofBullet graph 3064. Additionally, the use forecast for tier 1 storage is10 PBs, and the target storage capacity for tier 1 storage is 6 PBs,represented by the rectangular mark in Bullet graph 3064.

In pane 3006, a visual indication 3070 is displayed adjacent to tier 1storage and indicates that a global violation in a user-configuredpolicy for tier 1 storage has occurred. Accordingly, the administratoris directed to visual indication 3070 and may easily determine that aglobal violation of a user-configured policy for tier 1 storage hasoccurred. This may alert the administrator that tier 1 storage may runout of capacity in, for example, two months. The user may select visualindication 3070 or the text and/or graph corresponding to tier 1 storageto determine what caused the display of visual indication 3070 and maythen become aware that the tier 1 storage may projected to run out ofspace in two months.

In regard to the current state of tier 2 storage, dashboard manager 119determines that 5,600 TBs of tier 2 storage are currently being used.The current state of tier 2 storage capacity may indicate the actualstorage capacity of tier 2 storage in network storage system 190.Dashboard 3002 shows the current state of tier 2 storage capacity, whichis illustrated numerically by the “5,600 TB” displayed to the left ofthe Bullet graph associated with tier 2 storage and is also illustratedin a left portion of the associated Bullet graph. Additionally, the useforecast for tier 2 storage is 9 PBs and the target storage capacity is7.5 PBs, represented by the rectangular mark in the associated Bulletgraph.

In regard to the current state of tier 3 storage, dashboard manager 119determines that 3,913 TBs of tier 3 storage are currently being used.The current state of tier 3 storage capacity may indicate the actualstorage capacity of tier 3 storage in network storage system 190.Dashboard 3002 shows the current state of tier 3 storage capacity, whichis illustrated numerically by the “3,913 TB” displayed to the left ofthe Bullet graph associated with tier 3 storage and is also illustratedin a left portion of the associated Bullet graph. Additionally, the useforecast for tier 3 storage is 6 PBs and the target storage capacity is5 PBs, represented by the rectangular mark in the associated Bulletgraph.

In pane 3006, a visual indication 3071 is displayed adjacent to tier 3storage and indicates that a potential violation in a user-configuredpolicy for tier 3 storage has occurred. Accordingly, the administratoris directed to visual indication 3071 and may easily determine that apotential violation of a user-configured policy for tier 3 storage hasoccurred. Visual indication 3071 may be displayed if, for example, aproblem exists but does not actually breach a user-configured policy.The visual indications indicating a potential violation highlightsissues that are not of prime importance but should be displayed to makethe administrator aware of potential issues. In an example, the problemdoes not appear in the summarized information and resides in a lowerlevel of infrastructure. In such an example, the tier 3 storagesummaries may be within the user-configured policies; however, anindication location with tier 3 storage may have violated a “localpolicy” that does not violate a “global policy” in the summaries. Forexample, the total capacity of tier 3 storage in the data centers as awhole may have enough storage capacity, but one particular data centermay be running out of space. The user may select visual indication 3071or the text and/or graph corresponding to tier 3 storage to determinewhat caused the display of visual indication 3071 and may then becomeaware that the data center is running out of space.

In regard to the current state of tier 4 storage, dashboard manager 119determines that 4,500 TBs of tier 4 storage are currently being used.The current state of tier 4 storage capacity may indicate the actualstorage capacity of tier 4 storage in network storage system 190.Dashboard 3002 shows the current state of tier 4 storage capacity, whichis illustrated numerically by the “4,500 TB” displayed to the left ofthe Bullet graph associated with tier 4 storage and is also illustratedin a left portion of the associated Bullet graph. Additionally, the useforecast for tier 4 storage is 6 PBs and the target storage capacity is7.5 PBs, represented by the rectangular mark in the associated Bulletgraph.

In regard to the current state of tier 5 storage, dashboard manager 119determines that 5,500 TBs of tier 5 storage are currently being used.The current state of tier 5 storage capacity may indicate the actualstorage capacity of tier 5 storage in network storage system 190.Dashboard 3002 shows the current state of tier 5 storage capacity, whichis illustrated numerically by the “5,500 TB” displayed to the left ofthe Bullet graph associated with tier 5 storage and is also illustratedin a left portion of the associated Bullet graph. Additionally, the useforecast for tier 5 storage is 8 PBs and the target storage capacity is7.5 PBs, represented by the rectangular mark in the associated Bulletgraph.

Moreover, for each of the displayed storage tiers, a histogram isdisplayed under “Total Capacity” showing the total capacity of therespective storage tier. This histogram allows an understanding of howmuch of a share of the storage environment is distributed among thestorage tiers. In pane 3006, tier 4 storage has the largest share andtier 1 storage has the smallest share compared to each of the otherdisplayed storage tiers. The storage capacities of tier 2 storage, tier3 storage, and tier 5 storage fall somewhere in between tier 1 storageand tier 4 storage.

Further, for each of the displayed storage tiers, a bar graph isdisplayed under “Months to Full” showing the predicted number of monthsuntil the respective storage tier is full. This bar graph may be thoughtof as similar to a fuel gauge—the smaller the capacity, the smaller thebar displayed. In pane 3006, tier 1 storage is expected to be full inabout two months, tier 2 storage is expected to be full in about eightmonths, tier 3 storage is expected to be full in about nine months, tier4 storage is expected to be full in about 5 months, and tier 5 storageis expected to be full in about one year.

C. Daily Storage Traffic

In another example, the storage resource is a storage server, and theattribute is storage traffic. Pane 3008 is labeled “Daily StorageTraffic” 3080 and is displayed in the lower left-hand corner ofdashboard 3002. Pane 3008 provides the administrator with a heartbeat ofthe storage environment in general. Pane 3008 displays a daily storagetraffic chart 3082 including three lines that enable the administratorto compare and contrast previous storage traffic. A first line graph3084 represents yesterday's mean of the storage traffic, a second linegraph 3086 represents a daily mean of the storage traffic within thelast seven days, and a third line graph 3088 represents a daily mean ofthe storage traffic within the last six months. Daily storage trafficchart 3082 enables the user to visualize any abnormalities in the waythe storage infrastructure has been performing, as it gives information,which would highlight both cyclical (e.g., last seven days) and seasonalvariations (e.g., last six months).

The administrator may compare the line graphs and in particular, thedata spikes in the line graphs. For example, the administrator may lookinto yesterday's traffic represented by first line graph 3084 anddetermine that the peak of data traffic (50 TBs) occurred at 4:00 P.Myesterday. Although first line graph 3084 is described as being designedfor a daily view, this is not limiting and other embodiments mayillustrate a performance for any time frame (e.g., weekly or monthly).The other line graphs may also represent other data traffic values forother time frames. The line graphs may be displayed in different colorsor patterns for ease of review.

D. Data Centers Time to Full

In an example, the storage resources are data centers, and an attributeof a data center is its location. System monitoring tool 117 may monitora large storage environment containing a plurality of data centers. Pane3010 is labeled “Data Centers Time to Full” 3090 and is displayed in theupper right-hand corner of dashboard 3002. Pane 3010 displays thedifferent storage tiers and the cities in which the data centers arelocated. Pane 3010 is designed to give the user, for each storage tier,an easy to read view into how much storage capacity is left in each datacenter. In particular, pane 3010 indicates data centers of a particularstorage tier that are expected to run out of space within a particulartime period and/or data centers of a particular storage tier that havesufficient space and that the user need not be concerned with.

In the example illustrated in FIG. 3, the solid black color indicatesthat the storage capacity for that particular data center will be fullin less than three months, the dashed lines indicate that the storagecapacity for that particular data center will be full within three tosix months, and the solid white color indicates that the storagecapacity for that particular data center will take more than six monthsto be full.

In another example, the darkness of a color may be used to indicate adata center's time until it is full. For example, the darker the colorthe less space is available in the data center, and the lighter thecolor the less concerned the administrator should be. In an example, thedefault is that the darkest color indicates that the storage capacityfor that particular data center will be full in less than three months,the lighter color indicates that the storage capacity for thatparticular data center will be full within three to six months, and thelightest color indicates that the storage capacity for that particulardata center will take more than six months to be full.

The human user may configure pane 3010 to display particular storagetiers and may also configure how to indicate that less space isavailable in a data center. In an example, the human user sets thethresholds based on purchasing constraints. In such an example, if ittakes two weeks to purchase and stand up storage the darkest color maybe set to two weeks (rather than three months). Additionally, althoughthe example in pane 3010 shows three ranges or categorizations of timeperiods (e.g., less than three months, between three and six months, andmore than six months), this is not intended to be limiting and otherembodiments may include fewer or more than three ranges orcategorizations of time periods and/or time periods of differentlengths.

E. Top Consumers

In an example, the storage resources are storage servers, and a firstattribute of a storage server is its storage capacity, and a secondattribute of the storage server is its response time. Pane 3012 islabeled “Top 10 Applications” 3110 and is displayed in the middle rightportion of dashboard 3002. Pane 3012 displays the top ten storageconsumers and enables the human user to more easily understand thelocation of the issues and identity of the storage consumers. Althoughpane 3012 is illustrated as displaying applications, this is notintended to be limiting, and pane 3012 may display whatever the businesscategorizes as the consumers. For example, other components may be usedsuch as business units, projects, tenants, and/or storage arrays.

Availability may be a function of how much time the application is upand running Pane 3012 enables the administrator to see one level belowthe storage capacity by drilling down into the actual consumers of thestorage. The administrator is able to identify the top critical servicesand look at their individual consumption contributions to storagecapacity. Pane 3012 lists out the consumers in order of greatestcapacity and displays how much storage the consumers have used over thelast 12 months. For example, the administrator may look at applicationslisted in pane 3012 and ask important questions, such as “What is growthof the storage capacity in terms of this application?” and “What is thespeed of the response time that is being delivered to this application?”

Moreover, for each of the top ten storage consumers, storage capacity isplotted against time (last 12 months) on a graph. Additionally, for eachof the applications, a histogram is displayed under “Capacity” showingthe total capacity of the respective application. This histogram allowsan understanding of how much of a share of the storage infrastructure isdistributed among the applications.

Pane 3012 shows a summary of the top ten storage consumers' responsetimes using a box-and-whisker graph. Each box-and-whisker graph isoverlaid on a block with a dotted background, where the dotted blockrepresents an acceptable service level range. A left of the acceptablerange represents the minimum (e.g., fastest) response times, and theright of the acceptable range represents the maximum (e.g., slowest)response times. In an embodiment, dashboard manager 119 renders abox-and-whisker graph overlaid on an object representative of acceptableresponse times for one or more storage resources, where thebox-and-whisker graph is representative of actual response times of theone or more storage resources.

Pane 3012 displays a block with a dotted background, where the dottedblock is representative of acceptable response times for one or morestorage resources, and the actual performance of the storage issuperimposed on the acceptable response times. For each of the top tenstorage consumers, a box-and-whisker graph shows a spread of the actualdata points of the response times and median response times of thestorage. In an example, dashboard manager 119 renders a box-and-whiskergraph 3115 for the “Juice” application. Although the descriptiondescribes a box-and-whisker graph for the “Juice” application, thedescription applies as well to the other storage consumers. A left-mostdata point of a “whisker” 3117 of box-and-whisker graph 3115 representsthe fastest response time of the storage (approximately 10 milliseconds(ms)). Similarly, a right-most data point of a “whisker” 3118 ofbox-and-whisker graph 3115 represents the slowest response time of thestorage (approximately 19 ms). Thus, the range of the response time isabout 9 ms (19 ms−10 ms=9 ms) and falls between 10 and 19 ms.

A thick solid box 3119 of box-and-whisker graph 3115 represents theactual data measurements (e.g., actual data points), and the thinvertical line inside thick solid box 3119 represents the median responsetime of the storage. A first quartile of the response times fallsbetween the left-most data point of whisker 3117 and the intersection ofwhisker 3117 and thick solid box 3119. A second quartile of the responsetimes falls between the intersection of whisker 3117 and thick solid box3119 and the median response time. A third quartile of the responsetimes falls between the median response time and the intersection ofthick solid box 3119 and whisker 3118. A fourth quartile of the responsetimes falls between the intersection of thick solid box 3119 and whisker3118 and the right-most data point of whisker 3118. Half of the responsetimes are less than the median response time, and half of the responsetimes are greater than the median response time. Additionally, between25-75 percent of the response times fall within thick solid box 3119.Although the graph is described as being broken down into quarters of awhole (e.g., quartiles), this is not intended to be limiting and inother embodiments the graph may be broken down into different portionsof the whole (e.g., quintiles, etc.). Additionally, the graph may bebroken down into unequal portions.

The administrator may view the box-and-whisker graph overlaid on thedotted block representative of acceptable response times and determinewhether consumers are experiencing acceptable or unacceptable responsetimes. Pane 3012 provides the administrator with a contextual view of,for example, the acceptable response rates for particular applications.From looking at pane 3012, the administrator may be able to determinewhen most of the responses to the application workload are outside ofthe acceptable range.

If the box-and-whisker graph completely resides to the far left of theacceptable range this could suggest the consumer is on storage that isdelivering more performance than required and an opportunity may existto move the consumer to a different type of storage. For example, if anapplication is on tier 3 storage and experiencing very fast responsetimes, the administrator may decide to move the application to, forexample, tier 4 storage. If, however, the box-and-whisker graphcompletely resides to the far right of the acceptable range this couldsuggest the consumer is on storage that is delivering far lessperformance than required and an opportunity may exist to move theconsumer to a different type of storage. For example, if an applicationis on tier 3 storage and experiencing unacceptable response times, theadministrator may decide to move the application to, for example, tier 1storage or tier 2 storage.

Visual indications 3112 and 3114 are solid circles and are displayed tothe left of the consumer categories that have a global violation in auser-configured policy. In pane 3012, visual indications 3112 and 3114highlight the consumer categories “Prophet” and “Beacon” and provide theadministrator with an easy visual aid in identifying consumer categoriesthat are associated with a global violation in a user-configured policy.In an example, the policy specifies that the mean response time shouldalways be within the acceptable service range. In such an example,visual indication 3114 highlights a consumer category in which the meanresponse time is outside of the acceptable service range. Visualindications 3112 and 3114 may refer to the same or differentglobal-policy violation.

Additionally, visual indication 3116 is a hollow circle and is displayedto the left of the consumer category that is associated with a potentialviolation in a user-configured policy. In pane 3012, visual indication3116 highlights the consumer category “GlobalCollab” and provides theadministrator with an easy visual aid in identifying consumer categoriesthat is associated with a potential violation in a user-configuredpolicy. For example, by viewing visual indication 3116 in pane 3012, theadministrator may be able to more easily see that the capacity of thestorage delivering the “GlobalCollab” application may be running out ofspace.

F. Storage Performance by Tiers

In an example, the storage resources are storage servers, and a firstattribute of a storage server is its storage tier, and a secondattribute of the storage server is its performance (e.g., response timeand/or IOPS). Pane 3014 is labeled “Storage Tiers Daily Performance”3120 and is displayed in the bottom middle portion of dashboard 3002. Inviewing pane 3014, the administrator is able to see the overall storagetiers and how they are performing. In particular, the administrator isable to look into different storage tiers from a statistical performancepoint of view rather than a raw capacity point of view. In pane 3014,the response time and throughput I/O per second (IOPS) is displayed foreach storage tier. The administrator is able to determine whether aparticular storage tier should be used over another storage tier andmore easily tie the particular storage tier to performance. For example,looking at pane 3014, the administrator may be able to determine theacceptable range of I/O that justifies being in tier 1 storage.

Pane 3014 shows a summary of the previous day's response times andthroughput (IOPS) using box-and-whisker graphs. Each box-and-whiskergraph is overlaid on a block with a dotted background, where the dottedblock represents an acceptable service level range for that tier.Regarding response times, a left of the acceptable range represents theminimum (e.g., fastest) response times, and the right of the acceptablerange represents the maximum (e.g., slowest) response times. RegardingIOPS, a left of the acceptable range represents the minimum (e.g.,fastest) IOPS, and the right of the acceptable range represents themaximum (e.g., slowest) IOPS.

Pane 3014 displays acceptable response times for the storage tiers, andthe actual performance of the storage is superimposed on the responsetimes. For each tier, a box-and-whisker graph shows a spread of theactual data points of the response times and median response times ofthat storage tier. In an example, dashboard manager 119 renders abox-and-whisker graph 3123 for tier 1 storage. Although the descriptiondescribes a box-and-whisker graph for tier 1 storage, the descriptionapplies as well to the other storage tiers and the IOPS. A left-mostdata point of a “whisker” 3124 of box-and-whisker graph 3123 representsthe fastest response time of the storage (approximately 2 ms).Similarly, a right-most data point of a “whisker” 3125 ofbox-and-whisker graph 3123 represents the slowest response time of thestorage (approximately 8 ms). Thus, the range of the response time isabout 6 ms (8 ms−2 ms=6 ms) and falls between 2 and 8 ms.

A thick solid box 3126 of box-and-whisker graph 3123 represents theactual data measurements (e.g., actual data points), and the thinvertical line inside thick solid box 3126 represents the median responsetime of tier 1 storage. A first quartile of the response times fallsbetween the left-most data point of whisker 3124 and the intersection ofwhisker 3124 and thick solid box 3126. A second quartile of the responsetimes falls between the intersection of whisker 3124 and thick solid box3126 and the median response time. A third quartile of the responsetimes falls between the median response time and the intersection ofthick solid box 3126 and whisker 3125. A fourth quartile of the responsetimes falls between the intersection of thick solid box 3126 and whisker3125 and the right-most data point of whisker 3125. Half of the responsetimes are less than the median response time, and half of the responsetimes are greater than the median response time. Additionally, between25-75 percent of the response times fall within thick solid box 3126.

The administrator may view the box-and-whisker graph overlaid on theblock with the dotted background and determine whether particularstorage tiers are providing acceptable or unacceptable response times.Pane 3014 provides the administrator with a contextual view of, forexample, the acceptable response rates for each storage tier. Fromlooking at pane 3014, the administrator may be able to determine whenmost of the responses of a storage tier are outside of the acceptablerange. Accordingly, the administrator may see if there is opportunity toconsolidate tiers or realign workloads delivered from those tiers.

The administrator may also see highlighted issues with particular tiers.For example, visual indication 3122 is a solid circle and is displayedto the left of the storage tier that has a global violation in auser-configured policy. In pane 3014, visual indication 3122 highlightstier 2 storage and provides the administrator with an easy visual aid inidentifying that tier 2 storage has violated a user-configured policy.

G. Orphaned Capacity

In an example, the storage resources are storage servers, and anattribute of a storage server is orphaned capacity. Pane 3016 is labeled“Orphaned Capacity” 3130 and is displayed in the lower right-hand cornerof dashboard 3002. Orphaned storage may be storage capacity that hasbeen paid for but is not being used at the moment. A horizontallystacked bar 3132 is a visualization illustrating that the storageenvironment contains 325 TBs. Additionally, inside horizontally stackedbar 3132 is a utilization bar 3134 representing that 2.5 percent of the325 TBs is currently being used. Utilization bar 3134 shows the actualcapacity that is orphaned. If, for example, each TB costs $4,000, theadministrator may reconsider how much storage to purchase because only2.5 percent of the already purchased 325 TBs is being used. Thepercentages shown in horizontally stacked bar 3132 are user-configuredand show the acceptable ranges. The more to the left utilization bar3134 is, the more unacceptable the situation is.

A bar graph 3136 is a visualization representing the orphaned capacitydetailed by storage tier. Bar graph 3136 enables the administrator tounderstand which categories should be investigated for finding savings.Bar graph 3136 breaks the storage down into different tiers, which showsthe weight of storage capacity itself broken down into different tiers.

“Orphaned Capacity” 3130 may be user configured. In an example, orphanedcapacity is storage orphaned by configuration, which refers to storageallocated to a host but the configuration has not been done properly andthe host cannot access the storage. An ignore feature for storage mayappear in this category. The ignore feature enables the administrator toremove from the calculations storage the administrator knows is going toappear in pane 3016 but should be ignored for a valid reason. Forexample, the administrator may want to ignore the storage if it is beingmigrated and will be removed from the data center floor.

In another example, orphaned capacity is storage orphaned byperformance, which refers to storage that is correctly configured to beaccessed by a host but a user-defined value of unacceptable smallamounts of storage traffic exists over a user-defined period. An ignorefeature for storage may appear in this category. The ignore featureenables the administrator to remove from the calculations storage theadministrator knows is not going to be used for a significant timeperiod but could because of disaster failover or other unexpectedreasons. The ignored storage would not appear in the calculation.

The scope of embodiments is not limited to any particular set ofperformance metrics, as those shown in FIG. 3 are exemplary, and otherembodiments may include any appropriate set of performance metrics.Dashboard 3002 may include more or fewer than the panes displayed indisplay 3000. Further, each pane may include more or less informationthat that displayed in the pane, and the information displayed in a panemay be included or combined with another pane.

Additionally, in the example illustrated in FIG. 3, visual indications3054, 3070, 3112, 3114, and 3122 are solid circles and represent globalviolations, and visual indications 3071 and 3116 are hollow circles andrepresent potential violations exceeding a threshold. This is notintended to be limiting and in other embodiments, visual indications maybe any visual indications that highlight particular categories, tiers,storage consumers, etc. For example, a visual indication may be anexclamation mark, orange star, and/or the like using any suitablesymbol, shape, color, etc.

Furthermore, dashboard 3002 may use a color scheme that enablescolorblind users to understand the data and the page can also be printedon a black and white printer and still convey the information.

The storage information may be structured in the dashboard such that themost commonly used or required information is displayed in the upperleft portion of the screen and the least frequently used or requiredinformation is displayed in the bottom right portion of the screen. Inan example, dashboard manager 119 may render a first graph in a firstpane and render a second graph in a second pane. Dashboard manager 119may identify a most commonly used graph of the first and second graphsrendered in the user interface. In response to determining that thefirst graph is the most commonly used graph, dashboard manager 119 mayrender the first graph in a first portion of the user interface andrender the second graph in a second portion of the user interface, wherethe first portion is closer to the upper left-hand corner of the userinterface than the second portion. In contrast, in response todetermining that the second graph is the most commonly used graph,dashboard manager 119 may render the first graph in the second portionof the user interface and render the second graph in the first portionof the user interface.

A user and/or administrator may select the content and location ofpanes. For example, the administrator may be more concerned with thestorage capacity and thus choose to have pane 3004, which shows thestorage capacity, in the upper-left hand corner of dashboard 3002. Theadministrator may also select what content is shown in each of thepanes. For example, the administrator may choose to combine theinformation in panes 3004 and 3006 into one pane. In another example,the administrator may choose to remove FC bandwidth 3026 from pane 3004and insert the information from pane 3010 into pane 3004.

Various embodiments may provide advantages over conventional systems.For instance, the rendering of performance metric data, current state,target state, and/or use forecast for one or more storage resources on asingle graph (FIG. 3) is not only new, but highly intuitive for a userwho wants to compare the progression and state of a storage resource(e.g., performance, IOPS, etc.) in the system. For example, in a Bulletgraph, multiple data about a storage resource (e.g., current state,target state, and/or use forecast) may be shown on a single graph andconveyed in an easy to understand manner. In another example, in abox-and-whisker graph, multiple data about storage resources and/ortheir consumers (e.g., fastest and slowest response times, medianresponse times, etc.) may be shown on a single graph and conveyed in aneasy to understand manner. Accordingly, space on the display may besaved, thus using UI real estate economically.

V. Example Methods

FIG. 4 is a simplified diagram of an example method 400 of displayingcontextual information of a computing system according to oneembodiment. Method 400 is not meant to be limiting and may be used inother applications.

Method 400 includes blocks 410-465. In a block 410, a current state ofan attribute of one or more storage resources is determined, the one ormore storage resources coupled to a computer system, and the currentstate of the storage resource attribute being monitored by a performancemonitoring tool. In an example, dashboard manager 119 determines acurrent state of an attribute of one or more storage resources, the oneor more storage resources coupled to a computer system, and the currentstate of the storage resource attribute being monitored by systemmonitoring tool 117. In an example, the storage resource attribute isthe response time of a storage server. In another example, the storageresource attribute is the IOPS of a storage server. In other examples,the attribute may be any of the attributes described with respect toFIG. 3 and/or any other storage resource attribute.

In a block 420, an acceptable range for the attribute of the one or morestorage resources is determined. In an example, dashboard manager 119determines an acceptable range for the attribute of the one or morestorage resources. In some examples, the acceptable ranges may bedetermined by a user and/or an administrator, based on prior observedranges for the attributes, based on statistical analyses, and/or thelike. In another example, the acceptable range may be determined bycalculating an average response time and providing that average responsetime as the acceptable range.

In a block 430, a user interface including contextual informationregarding the attribute of the one or more storage resources isdisplayed. In an example, dashboard manager 119 displays a userinterface including contextual information regarding the attribute ofthe one or more storage resources.

In a block 440, a graph representative of the current state and theacceptable range for the attribute of the one or more storage resourcesis rendered in the user interface. In an example, dashboard manager 119renders in the user interface a graph representative of the currentstate and the acceptable range for the attribute of the one or morestorage resources. The graph may be, for example, a box-and-whiskergraph overlaid on an object representative of acceptable response timesfor one or more storage resources (e.g., the block with the dottedbackground). In another example, the graph is also representative of aforecast of how much time until a data center is full (e.g., in pane3080). In such an example, the forecast may be illustrated by the use ofcolors and patterns (e.g., darker color or a particular patternrepresents data centers to which the administrator should be pay extraattention).

In a block 450, it is determined whether a violation in auser-configured policy for the storage resource attribute has occurred.In an example, dashboard manager 119 determines whether a violation in auser-configured policy for the storage resource attribute has occurred.In a block 455, if the violation in the user-configured policy for thestorage resource attribute has occurred, a visual indication isdisplayed in the user interface to indicate that the violation in theuser-configured policy for the storage resource attribute has occurred.In an example, if the violation in the user-configured policy for thestorage resource attribute has occurred, dashboard manager 119 displaysa visual indication in the user interface to indicate that the violationin the user-configured policy for the storage resource attribute hasoccurred.

In a block 460, it is determined whether a potential for a violation ina user-configured policy for the storage resource attribute exceeds athreshold. In an example, dashboard manager 119 determines whether apotential for a violation in a user-configured policy for the storageresource attribute exceeds a threshold. In a block 465, if the potentialfor the violation in the user-configured policy for the storage resourceattribute exceeds the threshold, a visual indication is displayed in theuser interface to indicate that the potential for the violation in theuser-configured policy exceeds the threshold. In an example, if thepotential for the violation in the user-configured policy for thestorage resource attribute exceeds the threshold, dashboard manager 119displays a visual indication in the user interface to indicate that thepotential for the violation in the user-configured policy exceeds thethreshold.

It is also understood that additional processes may be performed before,during, or after blocks 410-465 discussed above. It is also understoodthat one or more of the blocks of method 400 described herein may beomitted, combined, or performed in a different sequence as desired.

In an example, a graph, text, and/or a visual indication displayed inthe user interface and corresponding to a storage resource attribute maybe a hyperlink that, when selected by a user, provides a link to moredetailed reports regarding the storage resource attribute. A block maybe inserted into method 400 to determine whether the graph, text, and/ora visual indication has been selected. In response to determining thatthe graph, text, and/or a visual indication has been selected, a moredetailed report regarding the storage resource attribute may be providedto the user.

FIG. 5 is a simplified diagram of an example method 500 of displayingcontextual information of a computing system according to oneembodiment. Method 500 is not meant to be limiting and may be used inother applications.

Method 500 includes blocks 510-565. In a block 510, a current state ofan attribute of one or more storage resources is determined, the one ormore storage resources coupled to a computer system, and the currentstate of the storage resource attribute being monitored by a performancemonitoring tool. In an example, dashboard manager 119 determines acurrent state of an attribute of one or more storage resources, the oneor more storage resources coupled to a computer system, and the currentstate of the storage resource attribute being monitored by systemmonitoring tool 117. In an example, the storage resource attribute isthe response time of a storage server. In another example, the storageresource attribute is the IOPS of a storage server. In other examples,the attribute may be any of the attributes described with respect toFIG. 3 and/or any other storage resource attribute.

In a block 520, a target state of the attribute of the one or morestorage resources is determined. In an example, dashboard manager 119determines a target state of the attribute of the one or more storageresources. In an example, the target state of the attribute is storagecapacity of a storage server. In another example, the target state ofthe attribute is the number of FC switch port connections. In someexamples, the target state may be determined by a user and/or anadministrator, based on prior observed ranges for the storage resourceattributes, based on statistical analyses, and/or the like. In anexample, the administrator has a best guess capacity projection (e.g., Iwant to buy X storage capacity) and sets this as the target state of theattribute. In another example, the target state is the total of what theadministrator budgeted for minus a safety margin. For example, if theadministrator has budgeted for 20 PB of storage capacity, the targetstate may be 20 PB minus a safety margin of 5 PB, which brings thetarget state to 15 PB of storage capacity.

In a block 530, a user interface including contextual informationregarding the attribute of the one or more storage resources isdisplayed. In an example, dashboard manager 119 displays a userinterface including contextual information regarding the attribute ofthe one or more storage resources.

In a block 540, a graph representative of the current state and thetarget state of the attribute of the one or more storage resources isrendered in the user interface. In an example, dashboard manager 119renders in the user interface a graph representative of the currentstate and the target state of the attribute of the one or more storageresources. The graph may be, for example, a Bullet graph representativeof the current state and target state of the storage resource attribute.In another example, the graph may indicate colors (e.g., a darkness of acolor) to represent the current state of the storage resource attribute.The graph may also include a forecast for the corresponding attribute.For example, in pane 3010, a default may be that the darker the colorthe closer the data center is to the target state, and the lighter thecolor the further the data center is to the target state.

In a block 550, it is determined whether a violation in auser-configured policy for the storage resource attribute has occurred.In an example, dashboard manager 119 determines whether a violation in auser-configured policy for the storage resource attribute has occurred.In a block 555, if the violation in the user-configured policy for thestorage resource attribute has occurred, a visual indication isdisplayed in the user interface to indicate that the violation in theuser-configured policy for the storage resource attribute has occurred.In an example, if the violation in the user-configured policy for thestorage resource attribute has occurred, dashboard manager 119 displaysa visual indication in the user interface to indicate that the violationin the user-configured policy for the storage resource attribute hasoccurred.

In a block 560, it is determined whether a potential for a violation ina user-configured policy for the storage resource attribute exceeds athreshold. In an example, dashboard manager 119 determines whether apotential for a violation in a user-configured policy for the storageresource attribute exceeds a threshold. In a block 565, if the potentialfor the violation in the user-configured policy for the storage resourceattribute exceeds the threshold, a visual indication is displayed in theuser interface to indicate that the potential for the violation in theuser-configured policy exceeds the threshold. In an example, if thepotential for the violation in the user-configured policy for thestorage resource attribute exceeds the threshold, dashboard manager 119displays a visual indication in the user interface to indicate that thepotential for the violation in the user-configured policy exceeds thethreshold.

It is also understood that additional processes may be performed before,during, or after blocks 510-565 discussed above. It is also understoodthat one or more of the blocks of method 500 described herein may beomitted, combined, or performed in a different sequence as desired.

In an example, a graph, text, and/or a visual indication displayed inthe user interface and corresponding to a storage resource attribute maybe a hyperlink that, when selected by a user, provides a link to moredetailed reports regarding the storage resource attribute. A block maybe inserted into method 400 to determine whether the graph, text, and/ora visual indication has been selected. In response to determining thatthe graph, text, and/or a visual indication has been selected, a moredetailed report regarding the storage resource attribute may be providedto the user.

V. Example Service-Oriented Architecture

FIG. 6 is a simplified diagram of an example service-orientedarchitecture (SOA) 2100. As shown in FIG. 6, SOA 2100 is built around aclient-service model. In SOA 2100, requests originate from one or moreclients 2111-2119. Each of the clients 2111-2119 may make requeststhrough a network 2120 to a server 2130.

In some embodiments, any of the clients may be system monitoring tool117 (FIG. 1) and the server 2130 may be server 110 (FIG. 1). In analternative embodiment, system monitoring tool 117 may be a client thatruns on server 2130, which is consistent with the FIG. 1 example above.In some embodiments, any of the clients may be dashboard manager 119(FIG. 1) and the server 2130 may be server 110 (FIG. 1). In analternative embodiment, dashboard manager 119 may be a client that runson server 2130, which is consistent with the FIG. 1 example above. Thescope of embodiments is not limited to any particular architecture.

Network 2120 may be any kind of network including a local area network(LAN), such as an Ethernet, and/or a wide area network (WAN), such asthe Internet. In some examples, server 2130 may be a standaloneworkstation, a cluster, a production server, within a virtual machine,and/or the like. Server 2130 includes a processor 2140 coupled to memory2150. In some examples, processor 2140 may control operation and/orexecution of hardware and/or software on server 2130. Although only oneprocessor 2140 is shown, server 2130 may include multiple processors,CPUs, multi-core processors, field programmable gate arrays (FPGAs),application specific integrated circuits (ASICs), and/or the like.Memory 2150 may include one or more types of machine readable media.Some common forms of machine readable media may include floppy disk,flexible disk, hard disk, magnetic tape, any other magnetic medium,CD-ROM, any other optical medium, punch cards, paper tape, any otherphysical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM,any other memory chip or cartridge, and/or any other medium from which aprocessor or computer is adapted to read.

Memory 2150 may be used to store an interface 2160 that is used byclients 2111-2119 to access the storage resource information withclients 2111-2119 being able to make requests for all, or part, of thestorage resource information. Each of the requests is directed tointerface 2160 where the requested storage resource information isretrieved, and a response is returned to the requesting client2111-2119. Numerous mechanisms for directing the requests to interface2160 may be used, including using a parameterized and/or unparameterizeduniform resource locator (URL), using an application name correspondingto interface 2160, and/or the like. The requests may also be made usingprotocols or methods such as application programming interface (API)calls, remote procedure calls, representational state transfer (REST)web services, simple object access protocol (SOAP) web services, and/orthe like.

As discussed above and further emphasized here, FIG. 6 is merely anexample which should not unduly limit the scope of the claims. One ofordinary skill in the art would recognize many variations, alternatives,and modifications. In some embodiments, other configurations may be usedwith SOA 2100. In some examples, any of the clients 2111-2119 may behosted in server 2130. In some examples, the storage resourceinformation may be stored outside of memory 2150 or server 2130. Forexample, the storage resource information may be stored in one or morefiles in a storage module hosted in server 2130 or in another computingdevice elsewhere in SOA 2100. As another example, the storage resourceinformation may be stored in one or more databases stored in one or moredatabase management systems. In some examples, processor 2140 and memory2150 may be hosted in a virtual machine.

It should be noted that the examples above are given in the context of anetwork storage system, through the scope of embodiments is not solimited. Rather, the concepts described above may be implemented in anytype of computing cluster, where performance data is sampled andanalyzed. One example embodiment includes a cluster of server nodes,where performance data for the server nodes themselves, as well as forthe applications running on the server nodes, is sampled according tothe workload of each node or application.

When implemented via computer-executable instructions, various elementsof embodiments of the present disclosure are in essence the softwarecode defining the operations of such various elements. The executableinstructions or software code may be obtained from a non-transient,tangible readable medium (e.g., a hard drive media, optical media, RAM,EPROM, EEPROM, tape media, cartridge media, flash memory, ROM, memorystick, network storage device, and/or the like). In fact, readable mediacan include any medium that can store information.

In the embodiments described above, example clients 160, server 110,storage controllers 101, and server 2130 include processor-based devicesand may include general-purpose processors or specially-adaptedprocessors (e.g., an Application Specific Integrated Circuit). Suchprocessor-based devices may include or otherwise access thenon-transient, tangible, machine readable media to read and execute thecode. By executing the code, the one or more processors perform theactions of the processes of methods 400 and/or 500.

Although illustrative embodiments have been shown and described, a widerange of modification, change and substitution is contemplated in theforegoing disclosure and in some instances, some features of theembodiments may be employed without a corresponding use of otherfeatures. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. Thus, the scope of theinvention should be limited only by the following claims, and it isappropriate that the claims be construed broadly and in a mannerconsistent with the scope of the embodiments disclosed herein.

What is claimed is:
 1. A computer program product having a computerreadable medium tangibly recording computer program logic for providingcontextual information of a computer system, the computer system incommunication with a performance monitoring tool, the computer programproduct comprising: code to determine a current state of an attribute ofone or more storage resources, the one or more storage resources coupledto a computer system, and the current state of the storage resourceattribute being monitored by a performance monitoring tool; code todetermine an acceptable range for the attribute of the one or morestorage resources; code to display a user interface including contextualinformation regarding the attribute of the one or more storageresources; and code to render in the user interface a graphrepresentative of the current state and the acceptable range for theattribute of the one or more storage resources.
 2. The computer programproduct of claim 1, further comprising: code to run an algorithm todetermine a forecast for the storage resource attribute.
 3. The computerprogram product of claim 2, wherein the code to run the algorithmcomprises a linear regression algorithm.
 4. The computer program productof claim 1, wherein the code to render includes code to render a graphincluding the current state and the acceptable range for the storageresource attribute.
 5. The computer program product of claim 1, whereinthe storage resource attribute includes at least one from the groupconsisting of storage capacity, acceptable range of response times,actual response time, input/output per seconds (IOPS), a tier ofstorage, a location of a data center that includes the storage resource,storage traffic, FC switch port connections, and FC bandwidthutilization.
 6. A method for providing contextual information of acomputer system, the method comprising: determining a current state ofan attribute of one or more storage resources, the one or more storageresources coupled to a computer system, and the current state of thestorage resource attribute being monitored by a performance monitoringtool; determining a target state of the attribute of the one or morestorage resources; displaying a user interface including contextualinformation regarding the attribute of the one or more storageresources; and rendering in the user interface a graph representative ofthe current state and the target state of the attribute of the one ormore storage resources.
 7. The method of claim 6, further comprising:running an algorithm to determine a forecast for the attribute of theone or more storage resources.
 8. The method of claim 7, wherein runningthe algorithm comprises running a linear regression algorithm.
 9. Themethod of claim 7, wherein the rendering comprises rendering a Bulletgraph including the current state, the target state, and the forecast ofthe storage resource attribute.
 10. The method of claim 9, wherein thestorage resource attribute is storage capacity, wherein the Bullet graphis representative of the current storage capacity, target storagecapacity, and the forecast of a storage environment monitored by theperformance monitoring tool, and wherein the storage environmentincludes the one or more storage resources.
 11. The method of claim 7,further comprising: providing a hyperlink that corresponds to thestorage resource attribute; and in response to a user selecting thehyperlink, providing a report regarding the current state of the storageresource attribute.
 12. The method of claim 6, further comprising:determining a second current state of a second attribute of one or morestorage resources; and determining a second target state of the secondattribute, wherein the displaying includes displaying in the userinterface contextual information regarding the second attribute, andwherein the rendering includes rendering in the user interface a secondgraph representative of the second current state and the second targetstate of the second attribute.
 13. The method of claim 12, wherein therendering comprises rendering the first graph in a first pane andrendering the second graph in a second pane.
 14. The method of claim 13,further comprising: identifying the most commonly used pane of the firstand second panes rendered in the user interface, wherein in response todetermining that the first pane is the most commonly used pane, therendering in the user interface a first graph includes rendering thefirst pane in a first portion of the user interface and the rendering inthe user interface a second graph includes rendering the second pane ina second portion of the user interface, wherein the first portion iscloser to the upper left-hand corner of the user interface than thesecond portion, and wherein in response to determining that the secondgraph is the most commonly used graph, the rendering in the userinterface a first graph includes rendering the first pane in the secondportion of the user interface and the rendering in the user interface asecond graph includes rendering the second pane in the first portion ofthe user interface.
 15. The method of claim 6, further comprising:determining whether a violation in a user-configured policy for thestorage resource attribute has occurred; and in response to determiningthat the global violation in the user-configured policy for the storageresource attribute has occurred, displaying in the user interface avisual indication that the global violation in the user-configuredpolicy for the storage resource attribute has occurred.
 16. The methodof claim 6, further comprising: determining whether a potential for aviolation in a user-configured policy for the storage resource attributeexceeds a threshold; and in response to determining that the potentialfor the violation in the user-configured policy for the storage resourceattribute exceeds the threshold, displaying in the user interface avisual indication that the potential for the violation in theuser-configured policy for the storage resource attribute exceeds thethreshold.
 17. A system comprising: a processor; and memory accessibleby the processor and storing computer-readable instructions, theprocessor performing the following actions by executing theinstructions: determining a current state of a first attribute of one ormore storage resources, the one or more storage resources coupled to acomputer system, and the current state of the first storage resourceattribute being monitored by a performance monitoring tool; identifyinga second attribute of the one or more storage resources, the secondattribute being different categories of the one or more storageresources; for each category of the different categories, determining atarget state of the first attribute of the one or more storageresources; displaying a user interface including contextual informationregarding the first and second attributes of the one or more storageresources; and rendering in the user interface a graph representative ofthe current state and the target state of the first and secondattributes of the one or more storage resources.
 18. The system of claim17, wherein the processor performs the following actions by executingthe instructions: for each category of the different categories, runningan algorithm to determine a use forecast for the first attribute of theone or more storage resources.
 19. The system of claim 18, wherein theprocessor performs the following actions by executing the instructions:for each category of the different categories, rendering a Bullet graphincluding the current state, the target state, and the use forecast ofthe first attribute of the one or more storage resources.
 20. The systemof claim 19, wherein the first storage resource attribute is storagecapacity, and the second storage resource attribute is a tier ofstorage.